package jvm;

/**
 * -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=3145728
 * 参数说明： -Xms -Xmx 堆大小的最小值和最大值
 *           -Xmn     堆中新生代的大小
 *           新生代：老年代 = 1：2
 *           Eden : from : to = 8 : 1 : 1
 *           -XX:PretenureSizeThreshold=3145728 大于此大小的直接分配到老年代
 */
public class MinorGc {
    private static final int _1MB = 1024 * 1024;

    public static void main(String[] args) {
        //enden 8M from 1M to 1M
        byte[] a1, a2, a3, a4;
        //10M直接放到老年代
        a1 = new byte[10 * _1MB];
        a2 = new byte[2 * _1MB];
        a3 = new byte[2 * _1MB];
        a4 = new byte[4 * _1MB];
        //上面8M放到eden eden区满 再放触发MinorGc，老年代已满，此时触发oom
        Byte a = new Byte("1");
        System.out.println(a);
    }
}
